package com.core.pojo.Result;

import com.github.pagehelper.PageInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Collections;
import java.util.List;

/**
 * 封装分页查询结果
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResult<T> {
    private int current;       // 当前页码
    private int pageSize= 10;      // 每页数据量
    private long total;        // 总记录数
    private int pages;         // 总页数
    private List<T> list = Collections.emptyList();  // 当前页数据列表

    /**
     * 静态工厂方法：从 PageInfo 对象快速构建 PageResult
     * @param pageInfo PageHelper 的 PageInfo 对象
     * @param <T> 数据类型
     * @return 封装好的 PageResult 对象
     */
    public static <T> PageResult<T> fromPageInfo(PageInfo<T> pageInfo) {
        PageResult<T> result = new PageResult<>();
        result.setCurrent(pageInfo.getPageNum());
        result.setPageSize(pageInfo.getPageSize());
        result.setTotal(pageInfo.getTotal());
        result.setPages(pageInfo.getPages());
        result.setList(pageInfo.getList());
        return result;
    }
}